package com.yida.gwj.deposit.mapper;

import com.yida.gwj.deposit.domain.GwjDepositBusinessBuild;
import com.yida.gwj.deposit.domain.dto.GwjCommunityHouseholdHouseRecordDTO;
import com.yida.gwj.deposit.domain.dto.GwjDepositBuildRecordDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 业务楼栋（缴存业务管理模块）Mapper接口
 *
 * @author lqq
 * @date 2023-01-10
 */
public interface GwjDepositBusinessBuildMapper {
	/**
	 * 查询业务楼栋（缴存业务管理模块）
	 *
	 * @param bizBuildId 业务楼栋（缴存业务管理模块）主键
	 * @return 业务楼栋（缴存业务管理模块）
	 */
	public GwjDepositBusinessBuild selectGwjDepositBusinessBuildByBizBuildId(Long bizBuildId);

	/**
	 * 查询业务楼栋（缴存业务管理模块）列表
	 *
	 * @param gwjDepositBusinessBuild 业务楼栋（缴存业务管理模块）
	 * @return 业务楼栋（缴存业务管理模块）集合
	 */
	public List<GwjDepositBusinessBuild> selectGwjDepositBusinessBuildList(GwjDepositBusinessBuild gwjDepositBusinessBuild);

	/**
	 * 新增业务楼栋（缴存业务管理模块）
	 *
	 * @param gwjDepositBusinessBuild 业务楼栋（缴存业务管理模块）
	 * @return 结果
	 */
	public int insertGwjDepositBusinessBuild(GwjDepositBusinessBuild gwjDepositBusinessBuild);

	/**
	 * 修改业务楼栋（缴存业务管理模块）
	 *
	 * @param gwjDepositBusinessBuild 业务楼栋（缴存业务管理模块）
	 * @return 结果
	 */
	public int updateGwjDepositBusinessBuild(GwjDepositBusinessBuild gwjDepositBusinessBuild);

	/**
	 * 删除业务楼栋（缴存业务管理模块）
	 *
	 * @param bizBuildId 业务楼栋（缴存业务管理模块）主键
	 * @return 结果
	 */
	public int deleteGwjDepositBusinessBuildByBizBuildId(Long bizBuildId);

	/**
	 * 批量删除业务楼栋（缴存业务管理模块）
	 *
	 * @param bizBuildIds 需要删除的数据主键集合
	 * @return 结果
	 */
	public int deleteGwjDepositBusinessBuildByBizBuildIds(Long[] bizBuildIds);

	/**
	 * 根据业务ID删除业务楼栋（缴存业务管理模块）
	 *
	 * @param bizId 业务ID
	 * @return 结果
	 */
	public int deleteGwjDepositBusinessBuildByBizId(Long bizId);

	/**
	 * 查询业务楼栋（缴存业务管理模块）
	 *
	 * @param gwjDepositBusinessBuild 业务楼栋（缴存业务管理模块）
	 * @return 业务楼栋（缴存业务管理模块）集合
	 */
	public GwjDepositBusinessBuild selectGwjDepositBusinessBuild(GwjDepositBusinessBuild gwjDepositBusinessBuild);

	/**
	 * 批量保存业务楼栋信息
	 * @param builds 业务楼栋信息
	 */
	int insertGwjDepositBusinessBuilds(@Param("builds") List<GwjDepositBusinessBuild> builds);

	/**
	 * 查询缴存清册房屋信息
	 * @param bizId 业主详情
	 * @return
	 */
    List<GwjDepositBuildRecordDTO> getDepositHouseRecord(Long bizId);

	/**
	 * 查询小区分户清册房屋信息
	 * @param bizId 业务主键
	 * @return
	 */
    List<GwjCommunityHouseholdHouseRecordDTO> getCommunityHouseholdHouseRecord(Long bizId);


	/**
	 * 判断楼栋是否被选中
	 */
	List<GwjDepositBusinessBuild> judgeBuildChoose(@Param("bizId") Long bizId, @Param("bizBuildIds") Long[] bizBuildIds);

	/**
	 * 根据业务楼栋主键查询业务楼栋集合
	 * @param bizBuildIds
	 * @return
	 */
    List<GwjDepositBusinessBuild> selectGwjDepositBusinessBuildListByBizBuildId(@Param("bizBuildIds")Long[] bizBuildIds);
}
